home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
UTIL
/
FILEUTIL
/
DIRMENU
/
DIRMENU~
/
!DirMenu
/
History
< prev
next >
Wrap
Text File
|
1993-08-14
|
7KB
|
203 lines
DirMenu history:
----------------
0.00 July 1992
Stored the whole HD directory tree as a file
and loaded it each time it was run. To update
the tree, had to delete the file and run again.
A bit crap, but I used it every day for
months, and it saved a lot of time!
1.00 May 1993
Having seen !QuickDir by Clive Jones, I decided
to provide menu-making on the fly as well, so
the menu tree was always up-to-date. Also
converted to DeskLib, which is superb.
Added the configuable root menu featue.
1.10 May 5 1993
Now displays icons in the menus. Discovered
that the Wimp sends a message with action code
0x400c9 when a menu is removed without a
selection being made (e.g. a click off the
menu). This is used to release all claims on
further messages, which are detected when the
menu is open in order to create new sub-menus
when MENU_WARNING messages are sent by the WIMP.
1.20 May 12 1993 ** First release **
Added the Info/Quit menu.
The Info box is my first ever dialogue box,
and I don't know how to make it moveable like
all other dialogue boxes I've seen.
1.21 May 24 1993
Added the options to open the root menu on the
left hand side of the screen, as suggested by
Kai Schlichting.
Fixed a minor bug which resulted in a garbled
title bar of the submenu of a '@' root item.
I've now read the comp.sys.acorn Application
Writer's Guide, so there is now no !Boot file,
and I've found out how to make the Info window
movable (process event_OPEN events).
1.30 ** Second release **
Added Help to normal menu.
Added 'Edit Configs' and 'Update' to normal menu.
These do a poor-man's implementation of a proper
dialogue-box configuration setter/saver. If I
had more time... Actually, you shouldn't want to
change the configs very often, so this method
isn't too bad.
Changed the template file so that the program
fills in the version/date when it is run.
1.31 Looks for File_0fb instead of File_fb, when
searching for a file-type sprite when the file-
-type is < &100.
1.32 Compiled without function names in code, to
make it slightly smaller.
1.40 20 June 1993
Can have multiple icons on the icon-bar, with
independent root menus.
1.41 Can have text under the icons.
1.42 28 June 1993
If a directory has bit 6 of its Access atributes
set, !DirMenu now displays it as an application
(i.e. looks for a wimp sprite with same name).
This is for compatability with FilerPatch, by
Jens Ovesen.
1.43 4 July 1993
The WIMP doesn't seem to invert text+sprite
icons in the same way as normal icons in menus,
so I've padded all items with spaces, making
highlighted icons in the menu easier to see.
2.00 11 July 1993
Now creates a menu for Filer windows, like
!QuickDir.
This is done by ataching a filter to the Filer
which sends !DirMenu an event_CLICK when
Alt-Menu is clicked on a filer window.
2.10 13 July 1993
Opens a menu when there is a menu-click on the
filer window title bar. I think this is a lot
more convenient than going to the keyboard to
press <Alt>.
Couldn't use a filter for this because
menu-clicks on title bars don't seem to be
passed on to apps by the Wimp. Hence had to
make a module which claims OS (not Wimp) mouse
button events, and sends event_CLICK's to
DirMenu.
2.11 13 July 1993
Opens a Filer-window menu for both cases - menu
on title bar, and alt-menu on workarea.
!MakeMod makes a single module which acts as a
filter on the Filer, and also catches mouse
events.
Couldn't use mouse-event-detector for the
Alt-Menu case because the filer would flash
open its menu just before DirMenu opens its menu.
!RunImage runs the Basic prog '!MakeMod' after
it has initialised as a task. !MakeMod then
assembles the module, called DirMenuMouse,
assembling in the Filer and DirMenu task_handles.
When DirMenu is quit, it RMKill's the module.
Assembling a module every time DirMenu is run
is a bit clumsy, but I am a new-comer to ARM
assembler, so a module that actively finds the
relevant task handles (like in !QuickDir) is a
bit too advanced for me. My method makes for a
smaller module anyway, and anyway Acorn have
gone to the trouble of including an assembler
on every machine, so I might as well take
advantage of it!
I don't know of any way of preventing the Wimp
from seeing a mouse click. This caused a few
problems when making DirMenu respond to non-Wimp
events from the module. Any suggestions ?
2.20 14 July 1993
Uses a simple Wimp_Poll loop instead of DeskLib's
Event_ functions, which are a bit of a luxury in
such a simple program. This makes !RunImage
nearly 5k smaller. However, it still can't fit
into a 32k wimpslot.
2.21 18 July 1993 *** third release ***
Can set DirMenu to expand all system variables in
file-paths prior to Filer_Run-ing them. This is
for when iconbar icons are specified to use
system variables such as <Wimp$ScrapDir> or @. It
makes file/application windows contain the full
path name of the files that are clicked on. This
just uses SWI "OS_FSControl" with r0=37.
2.22 27 July 1993
Oh dear! The click-on-Filer-titlebar thing seems
to be a bit wobbly. Changes:
1. Detects true menu button click i.e. buttons
000 -> 010, rather than xxx -> y1y.
2. When opening a Filer-window menu, the main
program now rechecks that the pointer is over
a titlebar, as a drag closely followed by a
menu click on a workarea seem to result in
Wimp_GetPointerInfo returning the poition of
the start of the drag i.e. a titlebar. This
resulted in spurious menu opening sometimes.
Unfortunately, if you now move the pointer
away from a titlebar very quickly after
clicking menu, this modification may mean
that DirMenu won't open a menu.
3. In !MakeMod, changed SWI calls to have 'X' bit
set, and return if the SWI signals an error.
The normal OS default error handling can give
a horrid crash when using MemFS's non-
-multitasking 'free' window. I don't think
this is my fault, as the OS error handling
should cope with errors, and the SWI was
Wimp_GetPointerInfo - hardly a complicated
system-altering one. There was no problem
with other non-multitasking windows.
Thanks to Kai Schlichting for noticing these
problems.
2.23 13 Aug 1993
Mr Schlichting still gets spurious menus, and
I'm a bit stumped by them. I think part of the
the problem is something to do with
Wimp_GetPointerInfo returning an out-of-date old
mouse position just after a drag has taken place,
leading to DirMenu being told that a click
occured on a title bar, when it didn't. You can
now make DirMenu only respond to Alt-Menu clicks
in a filer window, by altering 'Configs'. This
removes the low-level code from DirMenu's module.
The two tiny Obey files 'TBar' and 'NoTBar' are
needed because Filer_Run doesn't allow you to
send parameters to whatever it is you're
Filer_Run-ing.
Can anybody tell me why a 20K program needs more
than a 32k wimpslot to run?